Commonly, memory for computer applications could be classified into a non-volatile memory type and a volatile memory type. A recognizable difference between both of the memory types is that the data stored in the non-volatile memory does not disappear with absence of power but the data stored in the volatile memory disappears with absence of power.
Random access memory (RAM) belongs to the volatile memory type and features on rapid accessing speed and disappearance of data stored in random access memory with absence of power, i.e. turn off of the host. Random access memory could be further classified into static random access memory (SRAM) and dynamic random access memory (DRAM). Due to a capability of rapid accessing speed, static random access memory is often applied for the demands on high speed reading and writing. Differently, dynamic random access memory is characterized in high density capacity, and therefore brings lower cost than static random access memory.
Early non-volatile memory includes a read only memory (ROM) which is allowed only for data read. As long as a data was written in read only memory, the data can not be changed. Programmable read only memory (PROM) belongs to the non-volatile memory type and includes a lot of fuses to burn after required programs or data load in. Erasable programmable read only memory (EPROM) belongs to the non-volatile memory type and can be utilized, repeatedly. For data writing, the erasable programmable read only memory is written in by a higher voltage. For data erasing, circuits disposed within a transparent window of the erasable programmable read only memory is exposed to ultraviolet. Electrically erasable programmable read only memory is similar to the erasable programmable read only memory, however, a difference therebetween is that electrically erasable programmable read only memory is erased by a higher voltage instead of ultraviolet.
Flash memory is the most popular non-volatile memory, currently. Flash memory is a type of memory which uses a block to be a unit to erase at a time. The time of erasing written data in each block of flash memory is faster than that of electrically erasable programmable read only memory which uses one byte to be a unit to erase at a time. Furthermore, flash memory could be classified into a NOR-type flash memory and a NAND-type flash memory. In comparison between both types of flash memory, erased time and written time of NOR-type flash memory are slower but provides a complete addressing and a data bus for allowing random access. Thus, it is proper to replace early read only memory such as a basic input/output system (BIOS) of a computer. In contrast, erased time and written time of NAND-type flash memory are faster but architecture of NAND-type flash memory does not possess a complete addressing and a data bus. NAND-type flash memory must be accessed in a block at a time and its erasable times are far larger than those of NOR-type flash memory. Accordingly, NAND-type flash memory is suitable as storage devices such as Smart Media (SM), Secure Digital (SD) card, Multimedia Card (MMC) and so on.
NAND-type flash memory consists of a plurality of blocks. Each block consists of a plurality of pages each having the same capacity size. In other words, capacity size of one block is larger than capacity size of one page. Characteristics of NAND-type flash memory are that erased capacity size must be one block at a time while reading capacity size and writing capacity size must be one page at a time.
With progress of semiconductor fabrication, capacity size of each page in NAND-type flash memory is developed increasingly larger. A common file management system requires a flash translation layer (FTL) to access NAND-type flash memory. The flash translation layer performs a translation between a logical address requested by the common file management system and a physical address of NAND-type flash memory. As mentioned above, erased capacity size must be one block while writing capacity size must be one page. Accordingly, if valid data occupies a page or pages within a block which is ready to be erased, it needs to be removed to another block firstly. Then, the block just can be erased. When a lot of such a small size data is written in NAND-type flash memory, efficiency of address translation in the flash translation layer is lowered easily therefore. In addition, if capacity size of written data is less than one page, the written data still occupies one page. This makes difference of the actual capacity size of the written data from the capacity size of the written data required by the system and thereby wastes memory space. This is so-called write amplification. On the contrary, the valid data within the block must be removed before erased but NAND-type flash memory is configured with limited erasable times. Over erasing times would lower lifetime of NAND-type flash memory.
FIG. 1 shows a conventional memory module 100 which utilizes a dynamic random access memory 102 to be as a data cache of a NAND-type flash memory 104. When an external electronic device 106 such as a computer or a mobile phone is electrically connected to the memory module 100, the external electronic device 106 supplies a power source 108 to the dynamic random access memory 102 and accesses the memory module 100 via a data transmission interface 110. When the memory module 100 is electrically disconnected with the external electronic device 106, the data stored in the NAND-type flash memory 104 is still retained but other data stored in the dynamic random access memory 102 is lost in following absence of the power source 108.
Consequently, there is a need to develop a solution to resolve the above-mentioned problem.